/**
 */
package ram_pc;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Transition</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link ram_pc.Transition#getEndState <em>End State</em>}</li>
 *   <li>{@link ram_pc.Transition#getStartState <em>Start State</em>}</li>
 *   <li>{@link ram_pc.Transition#getSignature <em>Signature</em>}</li>
 * </ul>
 * </p>
 *
 * @see ram_pc.Ram_pcPackage#getTransition()
 * @model
 * @generated
 */
public interface Transition extends NamedElement
{
  /**
   * Returns the value of the '<em><b>End State</b></em>' reference.
   * It is bidirectional and its opposite is '{@link ram_pc.State#getIncomings <em>Incomings</em>}'.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>End State</em>' reference isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>End State</em>' reference.
   * @see #setEndState(State)
   * @see ram_pc.Ram_pcPackage#getTransition_EndState()
   * @see ram_pc.State#getIncomings
   * @model opposite="incomings"
   * @generated
   */
  State getEndState();

  /**
   * Sets the value of the '{@link ram_pc.Transition#getEndState <em>End State</em>}' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>End State</em>' reference.
   * @see #getEndState()
   * @generated
   */
  void setEndState(State value);

  /**
   * Returns the value of the '<em><b>Start State</b></em>' reference.
   * It is bidirectional and its opposite is '{@link ram_pc.State#getOutgoings <em>Outgoings</em>}'.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Start State</em>' reference isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Start State</em>' reference.
   * @see #setStartState(State)
   * @see ram_pc.Ram_pcPackage#getTransition_StartState()
   * @see ram_pc.State#getOutgoings
   * @model opposite="outgoings"
   * @generated
   */
  State getStartState();

  /**
   * Sets the value of the '{@link ram_pc.Transition#getStartState <em>Start State</em>}' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Start State</em>' reference.
   * @see #getStartState()
   * @generated
   */
  void setStartState(State value);

  /**
   * Returns the value of the '<em><b>Signature</b></em>' reference.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Signature</em>' reference isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Signature</em>' reference.
   * @see #setSignature(Operation)
   * @see ram_pc.Ram_pcPackage#getTransition_Signature()
   * @model
   * @generated
   */
  Operation getSignature();

  /**
   * Sets the value of the '{@link ram_pc.Transition#getSignature <em>Signature</em>}' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Signature</em>' reference.
   * @see #getSignature()
   * @generated
   */
  void setSignature(Operation value);

} // Transition
